Skip to content

Add FlyingRC F4Wing Mini target updates#1

Closed
FlyingRC-Official wants to merge 423 commits into
masterfrom
FLYINGRCF4WINGMINI
Closed

Add FlyingRC F4Wing Mini target updates#1
FlyingRC-Official wants to merge 423 commits into
masterfrom
FLYINGRCF4WINGMINI

Conversation

@FlyingRC-Official
Copy link
Copy Markdown
Owner

Summary

  • Rename FLYINGRCF4WINGMINI_NOT_RECOMMENDED to FLYINGRCF4WINGMINI and update the USB product string/docs title.
  • Add BMI270 gyro support and correct the default gyro orientation.
  • Add the V4 hardware current-sensor ADC pad using PC5 / ADC_CHN_2, matching the Matek F405 TE mapping.
  • Polish the board documentation wording and spelling while keeping the hardware limitations clear.

Verification

  • git diff --check origin/master...HEAD
  • Merge simulation against origin/master showed no conflicts.

Local CMake configure/build was not run because cmake is not installed in this environment.

Scavanger and others added 30 commits March 13, 2026 21:30
…im-telemetry-f722

Disable SIM telemetry for F722 targets due to lack of FLASH memory
…mizations

Eliminates: 1 function call + internal state check per gyro sample
…DMAR support

The circular DMA protection was unreliable because:
- DMA TC interrupt handler immediately disabled the stream on every
  circular cycle completion, defeating the circular mode entirely
- H7 could enable circular mode with zero data length (undefined per RM)
- pwmCompleteMotorUpdate() rate limiter silently swallowed the
  zero-throttle latching calls
- Burst DMA (USE_DSHOT_DMAR) targets were not handled

Fixes:
- Add TCH_DMA_CIRCULAR state so IRQ handlers skip stream-disable
- Disable TC interrupt during circular mode as belt-and-suspenders
- Always reload transfer count to buffer size when enabling circular
- Load zero-throttle directly into DMA buffers, bypassing rate limiter
- Add burst DMA circular support for DMAR targets (F4/F7/H7)
- Disable timer DMA request during reconfiguration on all platforms
- Add __DSB() barrier before re-enabling DMA streams
- Add configured check consistent with pwmCompleteMotorUpdate()
- Change TARGET_BOARD_IDENTIFIER from "H743" to "BB43" (unique 4-char ID)
- Remove BEEPER_PWM_FREQUENCY (no matching DEF_TIM entry)
- Remove USE_SOFTSERIAL1 (unnecessary with 8 hardware UARTs + VCP)
- Update SERIAL_PORT_COUNT from 9 to 8
- Remove beeper PWM and softserial timer entries from target.c
- Fix trailing whitespace on DEF_TIM S3 line
fix lsm6dxx driver lack gyroAlign setting issue.
Adds three new write-only MSP2 commands that allow a ground control
station to interact with an active INAV navigation session without
requiring direct RC transmitter input:

  MSP2_INAV_SET_WP_INDEX (0x2221)
    Jump to a specific waypoint during an active WP mission.
    Payload: U8 wp_index (0-based, relative to mission start waypoint).
    Preconditions: aircraft must be armed and NAV_WP_MODE must be active.
    Transitions any active waypoint FSM state back to PRE_ACTION so
    INAV re-initialises navigation for the new target waypoint.

  MSP2_INAV_SET_ALT_TARGET (0x2222)
    Set a new target altitude while altitude-controlled navigation is active.
    Payload: I32 altitude_cm (centimetres, relative to home).
    Preconditions: aircraft must be armed and NAV_CTL_ALT must be active.
    Calls updateClimbRateToAltitudeController() which works for both
    multicopter and fixed-wing platforms.

  MSP2_INAV_SET_CRUISE_HEADING (0x2223)
    Set the heading target while Cruise or Course Hold mode is active.
    Payload: I32 heading_centidegrees (0–35999).
    Preconditions: aircraft must be armed and NAV_COURSE_HOLD_MODE must
    be active. Sets both posControl.cruise.course and previousCourse to
    prevent spurious heading adjustments on the next control cycle.

Implementation details:
  - New FSM event NAV_FSM_EVENT_SWITCH_TO_WAYPOINT_JUMP aliases
    NAV_FSM_EVENT_STATE_SPECIFIC_4 (safe: WP and RTH states never
    overlap so the same underlying integer can be reused in both groups).
  - FSM transitions added for PRE_ACTION, IN_PROGRESS, REACHED,
    HOLD_TIME and FINISHED states, all routing to PRE_ACTION.
  - Three new public functions declared in navigation.h and implemented
    in navigation.c: navSetActiveWaypointIndex(), navSetDesiredAltitude(),
    navSetCruiseHeading().
  - MSP handlers added in fc_msp.c; all return MSP_RESULT_ERROR if the
    aircraft is not in a compatible state.
…lementation

The set-altitude functionality is already covered by a more mature existing
implementation in INAV. Remove the MSP2_INAV_SET_ALT_TARGET command added in
the previous commit, keeping only MSP2_INAV_SET_WP_INDEX (0x2221) and
MSP2_INAV_SET_CRUISE_HEADING (0x2223).

Removes: define in msp_protocol_v2_inav.h, navSetDesiredAltitude() in
navigation.c/.h, the MSP handler in fc_msp.c, and the docs section.
This commit introduces a hardware driver for the TE Connectivity MS5525DSO digital airspeed sensor over I2C, specifically calibrated for the 1 PSI variant.

Changes included:

- Registered MS5525 in pitot_hardware for CLI assignment

- Implemented pitotmeter_ms5525.c/h conforming to the 20-byte scratchpad limit

- Alternating D1/D2 polling for non-blocking execution length

- Added standard I2C bus device discovery for 0x76/0x77 addresses

- Added missing USE_PITOT_MS5525 flag to standard build targets

- Included I2C transaction success checks to fallback on failure

Tested compiling and executing successfully on KAKUTEH7WING target.

Resolves iNavFlight#4881
breadoven and others added 26 commits May 22, 2026 18:31
…-v1.3.3-update

Update STM32F7xx HAL to v1.3.3
…ets-no-storage

fix: disable bootloader variants for targets without storage backend
Remove STM32F4 HAL as it is not used in the project.
…13.0-update

Update STM32H7xx HAL to v1.11.6 and CMSIS Device to v1.10.7
- Add USE_I2C_DEVICE_2 (PB10/PB11) for external magnetometer
- Route MAG_I2C_BUS to BUS_I2C2 to match board layout
- Fix VBAT_SCALE_DEFAULT (was Betaflight value, not INAV scale)

Both ADC and magnetometer verified working on hardware.
…FIX-Voltage-BUG

change VBAT_SCALE_DEFAULT  = 2100
…sb-intercept-calc

ADSB selected the most dangerous vehicle by CPA calculation
…cmake-release-mode

docs: Document CMAKE_BUILD_TYPE=Release for production builds
…t tests

Validate that the packet contains exactly timerCount*2 bytes after the
count byte. Previously a truncated packet was silently accepted, applying
fewer overrides than requested and returning a plausible-but-wrong preview.

Add unit tests covering:
- pwmCalculateAssignment() save/restore invariant (hardware flags and
  timer override modes are identical before and after the simulation)
- TIMER_HW_MAX guard (out stays zero-initialised when count exceeds limit)
- QUERY payload validation (truncated, oversized, and well-formed payloads)
…-assignment-api-v2

output assignment: firmware-authoritative MSP2 READ/QUERY API
Removed commented-out timer definitions and adjusted the order of active timer definitions.
@github-actions
Copy link
Copy Markdown

Branch Targeting Suggestion

You've targeted the master branch with this PR. Please consider if a version branch might be more appropriate:

  • maintenance-9.x - If your change is backward-compatible and won't create compatibility issues between INAV firmware and Configurator 9.x versions. This will allow your PR to be included in the next 9.x release.

  • maintenance-10.x - If your change introduces compatibility requirements between firmware and configurator that would break 9.x compatibility. This is for PRs which will be included in INAV 10.x

If master is the correct target for this change, no action is needed.


This is an automated suggestion to help route contributions to the appropriate branch.

…F4WINGMINI

# Conflicts:
#	src/main/target/FLYINGRCF4WINGMINI_NOT_RECOMMENDED/CMakeLists.txt
FlyingRC-Official pushed a commit that referenced this pull request May 26, 2026
DroneCAN SITL Implementation: SocketCAN Driver and Testing
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.